| Bug #20852 | Partitions: crash if hash, innodb, composite primary key | ||
|---|---|---|---|
| Submitted: | 4 Jul 2006 18:36 | Modified: | 19 Jul 2006 4:29 | 
| Reporter: | Peter Gulutzan | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Partitions | Severity: | S3 (Non-critical) | 
| Version: | 5.1.12-beta-debug | OS: | Linux (SUSE 10.0 / 64-bit) | 
| Assigned to: | Mikael Ronström | CPU Architecture: | Any | 
   [4 Jul 2006 19:00]
   MySQL Verification Team        
  Thank you for the bug report.
   [12 Jul 2006 12:38]
   Mikael Ronström        
  It seems to be a InnoDB bug related to using rnd_init/rnd_next in an update that changes the primary key.
   [12 Jul 2006 22:52]
   Mikael Ronström        
  Fixed two missing variable assignments which are part of the handler interface
   [18 Jul 2006 8:56]
   Mikael Ronström        
  Will appear in 5.1.12
   [19 Jul 2006 4:29]
   Jon Stephens        
  Documented bugfix in 5.1.12 changelog.

Description: I create an InnoDB table with a 3-column primary key. The last column in the primary key is the partition column (partition by hash). I put 1,000 rows in the table. I try to update one row. The consequences are severe -- I have to 'kill -9' to get rid of the server. How to repeat: create procedure pc () begin declare v int default 0; create table t (s1 int, s2 timestamp, s3 decimal(10), primary key (s3,s2,s1)) engine=innodb partition by hash (s1); while v < 1000 do select 'insert', v; insert into t values (v, current_timestamp, 0); set v = v + 1; end while; update t set s3 = s3 + 1, s2 = current_timestamp where s1 = 462; end;// call pc()//