Bug #6075 Bogus Duplicate Key Error
Submitted: 13 Oct 2004 22:19 Modified: 19 Nov 2004 17:34
Reporter: Richard Lynch Email Updates:
Status: No Feedback Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:4.0.20a-nt OS:Windows (Windows)
Assigned to: CPU Architecture:Any

[13 Oct 2004 22:19] Richard Lynch
Description:
I can think of no rationale for the following:

mysql> select version();
+------------+
| version()  |
+------------+
| 4.0.20a-nt |
+------------+
1 row in set (0.00 sec)

mysql> select count(*) from mp_analysis where days_limit = 4 and indicators = 61;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql> insert into mp_analysis (days_limit, indicators, percent) values(4, 61, 61);
ERROR 1062: Duplicate entry '4-61' for key 1
mysql>  select count(*) from mp_analysis where days_limit = 4 and indicators = 61;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

mysql> show create table mp_analysis;
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table       | Create Table                                                                                                                                                                                                      |
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| mp_analysis | CREATE TABLE `mp_analysis` (
  `days_limit` int(11) NOT NULL default '0',
  `indicators` int(11) NOT NULL default '0',
  `percent` int(11) default NULL,
  PRIMARY KEY  (`days_limit`,`indicators`)
) TYPE=MyISAM |
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select * from mp_analysis;
ERROR 1030: Got error 127 from table handler

What's going on here?...

How to repeat:
Pretty much just create the table and start inserting a bunch of stuff seemed to work for me...

You could parse out the exact contents of the table from this output:

3, 3
select count(*) from mp_analysis where days_limit = 3 and indicators = 3
count is 1 (string)
Already did 3, 3
raw_count is 0
3, 4
select count(*) from mp_analysis where days_limit = 3 and indicators = 4
count is 1 (string)
Already did 3, 4
raw_count is 0
3, 5
select count(*) from mp_analysis where days_limit = 3 and indicators = 5
count is 1 (string)
Already did 3, 5
raw_count is 0
3, 6
select count(*) from mp_analysis where days_limit = 3 and indicators = 6
count is 1 (string)
Already did 3, 6
raw_count is 0
3, 7
select count(*) from mp_analysis where days_limit = 3 and indicators = 7
count is 1 (string)
Already did 3, 7
raw_count is 0
3, 8
select count(*) from mp_analysis where days_limit = 3 and indicators = 8
count is 1 (string)
Already did 3, 8
raw_count is 0
3, 9
select count(*) from mp_analysis where days_limit = 3 and indicators = 9
count is 1 (string)
Already did 3, 9
raw_count is 0
3, 10
select count(*) from mp_analysis where days_limit = 3 and indicators = 10
count is 1 (string)
Already did 3, 10
raw_count is 0
3, 11
select count(*) from mp_analysis where days_limit = 3 and indicators = 11
count is 1 (string)
Already did 3, 11
raw_count is 0
3, 12
select count(*) from mp_analysis where days_limit = 3 and indicators = 12
count is 1 (string)
Already did 3, 12
raw_count is 0
3, 13
select count(*) from mp_analysis where days_limit = 3 and indicators = 13
count is 1 (string)
Already did 3, 13
raw_count is 0
3, 14
select count(*) from mp_analysis where days_limit = 3 and indicators = 14
count is 1 (string)
Already did 3, 14
raw_count is 0
3, 15
select count(*) from mp_analysis where days_limit = 3 and indicators = 15
count is 1 (string)
Already did 3, 15
raw_count is 0
3, 16
select count(*) from mp_analysis where days_limit = 3 and indicators = 16
count is 1 (string)
Already did 3, 16
raw_count is 0
3, 17
select count(*) from mp_analysis where days_limit = 3 and indicators = 17
count is 1 (string)
Already did 3, 17
raw_count is 0
3, 18
select count(*) from mp_analysis where days_limit = 3 and indicators = 18
count is 1 (string)
Already did 3, 18
raw_count is 0
3, 19
select count(*) from mp_analysis where days_limit = 3 and indicators = 19
count is 1 (string)
Already did 3, 19
raw_count is 0
3, 20
select count(*) from mp_analysis where days_limit = 3 and indicators = 20
count is 1 (string)
Already did 3, 20
raw_count is 0
3, 21
select count(*) from mp_analysis where days_limit = 3 and indicators = 21
count is 1 (string)
Already did 3, 21
raw_count is 0
3, 22
select count(*) from mp_analysis where days_limit = 3 and indicators = 22
count is 1 (string)
Already did 3, 22
raw_count is 0
3, 23
select count(*) from mp_analysis where days_limit = 3 and indicators = 23
count is 1 (string)
Already did 3, 23
raw_count is 0
3, 24
select count(*) from mp_analysis where days_limit = 3 and indicators = 24
count is 1 (string)
Already did 3, 24
raw_count is 0
3, 25
select count(*) from mp_analysis where days_limit = 3 and indicators = 25
count is 1 (string)
Already did 3, 25
raw_count is 0
3, 26
select count(*) from mp_analysis where days_limit = 3 and indicators = 26
count is 1 (string)
Already did 3, 26
raw_count is 0
3, 27
select count(*) from mp_analysis where days_limit = 3 and indicators = 27
count is 1 (string)
Already did 3, 27
raw_count is 0
3, 28
select count(*) from mp_analysis where days_limit = 3 and indicators = 28
count is 1 (string)
Already did 3, 28
raw_count is 0
3, 29
select count(*) from mp_analysis where days_limit = 3 and indicators = 29
count is 1 (string)
Already did 3, 29
raw_count is 0
3, 30
select count(*) from mp_analysis where days_limit = 3 and indicators = 30
count is 1 (string)
Already did 3, 30
raw_count is 0
3, 31
select count(*) from mp_analysis where days_limit = 3 and indicators = 31
count is 1 (string)
Already did 3, 31
raw_count is 0
3, 32
select count(*) from mp_analysis where days_limit = 3 and indicators = 32
count is 1 (string)
Already did 3, 32
raw_count is 0
3, 33
select count(*) from mp_analysis where days_limit = 3 and indicators = 33
count is 1 (string)
Already did 3, 33
raw_count is 0
3, 34
select count(*) from mp_analysis where days_limit = 3 and indicators = 34
count is 1 (string)
Already did 3, 34
raw_count is 0
3, 35
select count(*) from mp_analysis where days_limit = 3 and indicators = 35
count is 1 (string)
Already did 3, 35
raw_count is 0
3, 36
select count(*) from mp_analysis where days_limit = 3 and indicators = 36
count is 1 (string)
Already did 3, 36
raw_count is 0
3, 37
select count(*) from mp_analysis where days_limit = 3 and indicators = 37
count is 1 (string)
Already did 3, 37
raw_count is 0
3, 38
select count(*) from mp_analysis where days_limit = 3 and indicators = 38
count is 1 (string)
Already did 3, 38
raw_count is 0
3, 39
select count(*) from mp_analysis where days_limit = 3 and indicators = 39
count is 1 (string)
Already did 3, 39
raw_count is 0
3, 40
select count(*) from mp_analysis where days_limit = 3 and indicators = 40
count is 1 (string)
Already did 3, 40
raw_count is 0
3, 41
select count(*) from mp_analysis where days_limit = 3 and indicators = 41
count is 1 (string)
Already did 3, 41
raw_count is 0
3, 42
select count(*) from mp_analysis where days_limit = 3 and indicators = 42
count is 1 (string)
Already did 3, 42
raw_count is 0
3, 43
select count(*) from mp_analysis where days_limit = 3 and indicators = 43
count is 1 (string)
Already did 3, 43
raw_count is 0
3, 44
select count(*) from mp_analysis where days_limit = 3 and indicators = 44
count is 1 (string)
Already did 3, 44
raw_count is 0
3, 45
select count(*) from mp_analysis where days_limit = 3 and indicators = 45
count is 1 (string)
Already did 3, 45
raw_count is 0
3, 46
select count(*) from mp_analysis where days_limit = 3 and indicators = 46
count is 1 (string)
Already did 3, 46
raw_count is 0
3, 47
select count(*) from mp_analysis where days_limit = 3 and indicators = 47
count is 1 (string)
Already did 3, 47
raw_count is 0
3, 48
select count(*) from mp_analysis where days_limit = 3 and indicators = 48
count is 1 (string)
Already did 3, 48
raw_count is 0
3, 49
select count(*) from mp_analysis where days_limit = 3 and indicators = 49
count is 1 (string)
Already did 3, 49
raw_count is 0
3, 50
select count(*) from mp_analysis where days_limit = 3 and indicators = 50
count is 1 (string)
Already did 3, 50
raw_count is 0
3, 51
select count(*) from mp_analysis where days_limit = 3 and indicators = 51
count is 1 (string)
Already did 3, 51
raw_count is 0
3, 52
select count(*) from mp_analysis where days_limit = 3 and indicators = 52
count is 1 (string)
Already did 3, 52
raw_count is 0
3, 53
select count(*) from mp_analysis where days_limit = 3 and indicators = 53
count is 1 (string)
Already did 3, 53
raw_count is 0
3, 54
select count(*) from mp_analysis where days_limit = 3 and indicators = 54
count is 1 (string)
Already did 3, 54
raw_count is 0
3, 55
select count(*) from mp_analysis where days_limit = 3 and indicators = 55
count is 1 (string)
Already did 3, 55
raw_count is 0
3, 56
select count(*) from mp_analysis where days_limit = 3 and indicators = 56
count is 1 (string)
Already did 3, 56
raw_count is 0
3, 57
select count(*) from mp_analysis where days_limit = 3 and indicators = 57
count is 1 (string)
Already did 3, 57
raw_count is 0
3, 58
select count(*) from mp_analysis where days_limit = 3 and indicators = 58
count is 1 (string)
Already did 3, 58
raw_count is 0
3, 59
select count(*) from mp_analysis where days_limit = 3 and indicators = 59
count is 1 (string)
Already did 3, 59
raw_count is 0
3, 60
select count(*) from mp_analysis where days_limit = 3 and indicators = 60
count is 1 (string)
Already did 3, 60
raw_count is 0
3, 61
select count(*) from mp_analysis where days_limit = 3 and indicators = 61
count is 1 (string)
Already did 3, 61
raw_count is 0
3, 62
select count(*) from mp_analysis where days_limit = 3 and indicators = 62
count is 1 (string)
Already did 3, 62
raw_count is 0
3, 63
select count(*) from mp_analysis where days_limit = 3 and indicators = 63
count is 1 (string)
Already did 3, 63
raw_count is 0
4, 3
select count(*) from mp_analysis where days_limit = 4 and indicators = 3
count is 1 (string)
Already did 4, 3
raw_count is 0
4, 4
select count(*) from mp_analysis where days_limit = 4 and indicators = 4
count is 1 (string)
Already did 4, 4
raw_count is 0
4, 5
select count(*) from mp_analysis where days_limit = 4 and indicators = 5
count is 1 (string)
Already did 4, 5
raw_count is 0
4, 6
select count(*) from mp_analysis where days_limit = 4 and indicators = 6
count is 1 (string)
Already did 4, 6
raw_count is 0
4, 7
select count(*) from mp_analysis where days_limit = 4 and indicators = 7
count is 1 (string)
Already did 4, 7
raw_count is 0
4, 8
select count(*) from mp_analysis where days_limit = 4 and indicators = 8
count is 1 (string)
Already did 4, 8
raw_count is 0
4, 9
select count(*) from mp_analysis where days_limit = 4 and indicators = 9
count is 1 (string)
Already did 4, 9
raw_count is 0
4, 10
select count(*) from mp_analysis where days_limit = 4 and indicators = 10
count is 1 (string)
Already did 4, 10
raw_count is 0
4, 11
select count(*) from mp_analysis where days_limit = 4 and indicators = 11
count is 1 (string)
Already did 4, 11
raw_count is 0
4, 12
select count(*) from mp_analysis where days_limit = 4 and indicators = 12
count is 1 (string)
Already did 4, 12
raw_count is 0
4, 13
select count(*) from mp_analysis where days_limit = 4 and indicators = 13
count is 1 (string)
Already did 4, 13
raw_count is 0
4, 14
select count(*) from mp_analysis where days_limit = 4 and indicators = 14
count is 1 (string)
Already did 4, 14
raw_count is 0
4, 15
select count(*) from mp_analysis where days_limit = 4 and indicators = 15
count is 1 (string)
Already did 4, 15
raw_count is 0
4, 16
select count(*) from mp_analysis where days_limit = 4 and indicators = 16
count is 1 (string)
Already did 4, 16
raw_count is 0
4, 17
select count(*) from mp_analysis where days_limit = 4 and indicators = 17
count is 1 (string)
Already did 4, 17
raw_count is 0
4, 18
select count(*) from mp_analysis where days_limit = 4 and indicators = 18
count is 1 (string)
Already did 4, 18
raw_count is 0
4, 19
select count(*) from mp_analysis where days_limit = 4 and indicators = 19
count is 1 (string)
Already did 4, 19
raw_count is 0
4, 20
select count(*) from mp_analysis where days_limit = 4 and indicators = 20
count is 1 (string)
Already did 4, 20
raw_count is 0
4, 21
select count(*) from mp_analysis where days_limit = 4 and indicators = 21
count is 1 (string)
Already did 4, 21
raw_count is 0
4, 22
select count(*) from mp_analysis where days_limit = 4 and indicators = 22
count is 1 (string)
Already did 4, 22
raw_count is 0
4, 23
select count(*) from mp_analysis where days_limit = 4 and indicators = 23
count is 1 (string)
Already did 4, 23
raw_count is 0
4, 24
select count(*) from mp_analysis where days_limit = 4 and indicators = 24
count is 1 (string)
Already did 4, 24
raw_count is 0
4, 25
select count(*) from mp_analysis where days_limit = 4 and indicators = 25
count is 1 (string)
Already did 4, 25
raw_count is 0
4, 26
select count(*) from mp_analysis where days_limit = 4 and indicators = 26
count is 1 (string)
Already did 4, 26
raw_count is 0
4, 27
select count(*) from mp_analysis where days_limit = 4 and indicators = 27
count is 1 (string)
Already did 4, 27
raw_count is 0
4, 28
select count(*) from mp_analysis where days_limit = 4 and indicators = 28
count is 1 (string)
Already did 4, 28
raw_count is 0
4, 29
select count(*) from mp_analysis where days_limit = 4 and indicators = 29
count is 1 (string)
Already did 4, 29
raw_count is 0
4, 30
select count(*) from mp_analysis where days_limit = 4 and indicators = 30
count is 1 (string)
Already did 4, 30
raw_count is 0
4, 31
select count(*) from mp_analysis where days_limit = 4 and indicators = 31
count is 1 (string)
Already did 4, 31
raw_count is 0
4, 32
select count(*) from mp_analysis where days_limit = 4 and indicators = 32
count is 1 (string)
Already did 4, 32
raw_count is 0
4, 33
select count(*) from mp_analysis where days_limit = 4 and indicators = 33
count is 1 (string)
Already did 4, 33
raw_count is 0
4, 34
select count(*) from mp_analysis where days_limit = 4 and indicators = 34
count is 1 (string)
Already did 4, 34
raw_count is 0
4, 35
select count(*) from mp_analysis where days_limit = 4 and indicators = 35
count is 1 (string)
Already did 4, 35
raw_count is 0
4, 36
select count(*) from mp_analysis where days_limit = 4 and indicators = 36
count is 1 (string)
Already did 4, 36
raw_count is 0
4, 37
select count(*) from mp_analysis where days_limit = 4 and indicators = 37
count is 1 (string)
Already did 4, 37
raw_count is 0
4, 38
select count(*) from mp_analysis where days_limit = 4 and indicators = 38
count is 1 (string)
Already did 4, 38
raw_count is 0
4, 39
select count(*) from mp_analysis where days_limit = 4 and indicators = 39
count is 1 (string)
Already did 4, 39
raw_count is 0
4, 40
select count(*) from mp_analysis where days_limit = 4 and indicators = 40
count is 1 (string)
Already did 4, 40
raw_count is 0
4, 41
select count(*) from mp_analysis where days_limit = 4 and indicators = 41
count is 1 (string)
Already did 4, 41
raw_count is 0
4, 42
select count(*) from mp_analysis where days_limit = 4 and indicators = 42
count is 1 (string)
Already did 4, 42
raw_count is 0
4, 43
select count(*) from mp_analysis where days_limit = 4 and indicators = 43
count is 1 (string)
Already did 4, 43
raw_count is 0
4, 44
select count(*) from mp_analysis where days_limit = 4 and indicators = 44
count is 1 (string)
Already did 4, 44
raw_count is 0
4, 45
select count(*) from mp_analysis where days_limit = 4 and indicators = 45
count is 1 (string)
Already did 4, 45
raw_count is 0
4, 46
select count(*) from mp_analysis where days_limit = 4 and indicators = 46
count is 1 (string)
Already did 4, 46
raw_count is 0
4, 47
select count(*) from mp_analysis where days_limit = 4 and indicators = 47
count is 1 (string)
Already did 4, 47
raw_count is 0
4, 48
select count(*) from mp_analysis where days_limit = 4 and indicators = 48
count is 1 (string)
Already did 4, 48
raw_count is 0
4, 49
select count(*) from mp_analysis where days_limit = 4 and indicators = 49
count is 1 (string)
Already did 4, 49
raw_count is 0
4, 50
select count(*) from mp_analysis where days_limit = 4 and indicators = 50
count is 1 (string)
Already did 4, 50
raw_count is 0
4, 51
select count(*) from mp_analysis where days_limit = 4 and indicators = 51
count is 1 (string)
Already did 4, 51
raw_count is 0
4, 52
select count(*) from mp_analysis where days_limit = 4 and indicators = 52
count is 1 (string)
Already did 4, 52
raw_count is 0
4, 53
select count(*) from mp_analysis where days_limit = 4 and indicators = 53
count is 1 (string)
Already did 4, 53
raw_count is 0
4, 54
select count(*) from mp_analysis where days_limit = 4 and indicators = 54
count is 1 (string)
Already did 4, 54
raw_count is 0
4, 55
select count(*) from mp_analysis where days_limit = 4 and indicators = 55
count is 1 (string)
Already did 4, 55
raw_count is 0
4, 56
select count(*) from mp_analysis where days_limit = 4 and indicators = 56
count is 1 (string)
Already did 4, 56
raw_count is 0
4, 57
select count(*) from mp_analysis where days_limit = 4 and indicators = 57
count is 1 (string)
Already did 4, 57
raw_count is 0
4, 58
select count(*) from mp_analysis where days_limit = 4 and indicators = 58
count is 1 (string)
Already did 4, 58
raw_count is 0
4, 59
select count(*) from mp_analysis where days_limit = 4 and indicators = 59
count is 1 (string)
Already did 4, 59
raw_count is 0
4, 60
select count(*) from mp_analysis where days_limit = 4 and indicators = 60
count is 1 (string)
Already did 4, 60
raw_count is 0
4, 61
select count(*) from mp_analysis where days_limit = 4 and indicators = 61
count is 0 (string)
Doing 4, 61
insert into mp_analysis (days_limit, indicators, percent ) values(4, 61, 61)
Duplicate entry '4-61' for key 1 insert into mp_analysis (days_limit, indicators, percent ) values(4, 61, 61)
[13 Oct 2004 22:34] Richard Lynch
D'oh!

I'll bet it's because I was trying to provide a nice name for my PRIMARY KEY...

And that was being interpreted as a non-existent KEY TYPE.

So, put in a request for A) rejecting bogus KEY TYPE and B) allowing (somehow) providing and using a KEY NAME for a PRIMARY KEY.
[14 Oct 2004 7:57] Sergei Golubchik
duplicate key or not, there should be no error as in

mysql> select * from mp_analysis;
ERROR 1030: Got error 127 from table handler

could you provide a dump of your table ?
[19 Oct 2004 16:37] Richard Lynch
At the moment, the Windows box that has all the data is not letting me access it.

Perhaps IT can fix it.  (I don't do Windows.)

I do know for certain that the days_limit and indicators columns had these values:
3, 3
3, 4
3, 5
3, 6
3, 7
3, 8
3, 9
3, 10
3, 11
3, 12
3, 13
3, 14
3, 15
3, 16
3, 17
3, 18
3, 19
3, 20
3, 21
3, 22
3, 23
3, 24
3, 25
3, 26
3, 27
3, 28
3, 29
3, 30
3, 31
3, 32
3, 33
3, 34
3, 35
3, 36
3, 37
3, 38
3, 39
3, 40
3, 41
3, 42
3, 43
3, 44
3, 45
3, 46
3, 47
3, 48
3, 49
3, 50
3, 51
3, 52
3, 53
3, 54
3, 55
3, 56
3, 57
3, 58
3, 59
3, 60
3, 61
3, 62
3, 63
4, 3
4, 4
4, 5
4, 6
4, 7
4, 8
4, 9
4, 10
4, 11
4, 12
4, 13
4, 14
4, 15
4, 16
4, 17
4, 18
4, 19
4, 20
4, 21
4, 22
4, 23
4, 24
4, 25
4, 26
4, 27
4, 28
4, 29
4, 30
4, 31
4, 32
4, 33
4, 34
4, 35
4, 36
4, 37
4, 38
4, 39
4, 40
4, 8
4, 9
4, 10
4, 11
4, 12
4, 13
4, 14
4, 15
4, 16
4, 17
4, 18
4, 19
4, 20
4, 21
4, 22
4, 23
4, 24
4, 25
4, 26
4, 27
4, 28
4, 29
4, 30
4, 31
4, 32
4, 33
4, 34
4, 35
4, 36
4, 37
4, 38
4, 39
4, 40
4, 41
4, 42
4, 43
4, 44
4, 45
4, 46
4, 47
4, 48
4, 49
4, 50
4, 51
4, 52
4, 53
4, 54
4, 55
4, 56
4, 57
4, 58
4, 59
4, 60
4, 61

I don't have access to the precise numbers in the last field, but it is a percentage from 0 to 100, probably with a Bell curve shape topping out at 50.

I'll post the full data here if they ever fix the Windows box (or at least make it less broken enough to get me the data)

Meanwhile, I'm pretty sure that the base problem is using a non-existent 'type' for the index, which then makes MySQL do very strange things when inserting/updating/deleting data.
[19 Oct 2004 17:34] Richard Lynch
Actually, I can't get the data from the original table.

I have recreated it, however, on another box (Linux), without the bogus key-type:

mysql> select * from mp_analysis where days_limit <= 4 and indicators <= 61;
+------------+------------+---------+
| days_limit | indicators | percent |
+------------+------------+---------+
|          3 |          3 |      69 |
|          3 |          4 |      69 |
|          3 |          5 |      68 |
|          3 |          6 |      68 |
|          3 |          7 |      67 |
|          3 |          8 |      67 |
|          3 |          9 |      67 |
|          3 |         10 |      67 |
|          3 |         11 |      66 |
|          3 |         12 |      66 |
|          3 |         13 |      65 |
|          3 |         14 |      65 |
|          3 |         15 |      65 |
|          3 |         16 |      65 |
|          3 |         17 |      65 |
|          3 |         18 |      65 |
|          3 |         19 |      65 |
|          3 |         20 |      65 |
|          3 |         21 |      65 |
|          3 |         22 |      65 |
|          3 |         23 |      65 |
|          3 |         24 |      65 |
|          3 |         25 |      65 |
|          3 |         26 |      65 |
|          3 |         27 |      65 |
|          3 |         28 |      65 |
|          3 |         29 |      65 |
|          3 |         30 |      65 |
|          3 |         31 |      65 |
|          3 |         32 |      65 |
|          3 |         33 |      65 |
|          3 |         34 |      65 |
|          3 |         35 |      64 |
|          3 |         36 |      64 |
|          3 |         37 |      64 |
|          3 |         38 |      64 |
|          3 |         39 |      64 |
|          3 |         40 |      64 |
|          3 |         41 |      63 |
|          3 |         42 |      63 |
|          3 |         43 |      63 |
|          3 |         44 |      63 |
|          3 |         45 |      63 |
|          3 |         46 |      63 |
|          3 |         47 |      63 |
|          3 |         48 |      63 |
|          3 |         49 |      63 |
|          3 |         50 |      63 |
|          3 |         51 |      63 |
|          3 |         52 |      63 |
|          3 |         53 |      63 |
|          3 |         54 |      63 |
|          3 |         55 |      63 |
|          3 |         56 |      63 |
|          3 |         57 |      63 |
|          3 |         58 |      63 |
|          3 |         59 |      63 |
|          3 |         60 |      63 |
|          3 |         61 |      63 |
|          4 |          3 |      69 |
|          4 |          4 |      69 |
|          4 |          5 |      68 |
|          4 |          6 |      68 |
|          4 |          7 |      66 |
|          4 |          8 |      66 |
|          4 |          9 |      66 |
|          4 |         10 |      66 |
|          4 |         11 |      66 |
|          4 |         12 |      66 |
|          4 |         13 |      65 |
|          4 |         14 |      65 |
|          4 |         15 |      65 |
|          4 |         16 |      65 |
|          4 |         17 |      65 |
|          4 |         18 |      65 |
|          4 |         19 |      65 |
|          4 |         20 |      65 |
|          4 |         21 |      65 |
|          4 |         22 |      65 |
|          4 |         23 |      64 |
|          4 |         24 |      64 |
|          4 |         25 |      64 |
|          4 |         26 |      64 |
|          4 |         27 |      65 |
|          4 |         28 |      65 |
|          4 |         29 |      65 |
|          4 |         30 |      65 |
|          4 |         31 |      65 |
|          4 |         32 |      65 |
|          4 |         33 |      65 |
|          4 |         34 |      65 |
|          4 |         35 |      63 |
|          4 |         36 |      63 |
|          4 |         37 |      62 |
|          4 |         38 |      62 |
|          4 |         39 |      62 |
|          4 |         40 |      62 |
|          4 |         41 |      62 |
|          4 |         42 |      57 |
|          4 |         43 |      57 |
|          4 |         44 |      57 |
|          4 |         45 |      57 |
|          4 |         46 |      57 |
|          4 |         47 |      57 |
|          4 |         48 |      57 |
|          4 |         49 |      57 |
|          4 |         50 |      57 |
|          4 |         51 |      57 |
|          4 |         52 |      57 |
|          4 |         53 |      57 |
|          4 |         54 |      57 |
|          4 |         55 |      57 |
|          4 |         56 |      57 |
|          4 |         57 |      57 |
|          4 |         58 |      57 |
|          4 |         59 |      57 |
|          4 |         60 |      57 |
|          4 |         61 |      57 |
+------------+------------+---------+
118 rows in set (0.00 sec)

This table has worked just fine, and has more data in it, but these results should match what was in the old table, I believe...

Unless the old table also has:
5, 3, 69
6, 3, 69
7, 3, 69
.
.
.

300, 3, 69

due to a bug in my "break;" logic in PHP...

Still, given the number of MySQL users and my own experience, the bogus key-type almost has to be the crux of the matter.
[14 Feb 2005 22:54] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".