Bug #31893 Partitions: crash if subpartitions and engine change
Submitted: 26 Oct 2007 21:55 Modified: 16 Nov 2007 10:03
Reporter: Peter Gulutzan Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Partitions Severity:S3 (Non-critical)
Version:5.1.23-beta-debug OS:Linux (SUSE 10 64-bit)
Assigned to: Alexey Botchkov CPU Architecture:Any

[26 Oct 2007 21:55] Peter Gulutzan
Description:
I create a table with partitioning and subpartitioning, engine=innodb.
I alter the table to engine=myisam.
Crash.

How to repeat:
mysql> create table tx (int_column int, char_column char(5))
    ->  PARTITION BY RANGE (int_column) subpartition by key (char_column)
    ->  (PARTITION p1 VALUES LESS THAN (5) ENGINE = InnoDB);
Query OK, 0 rows affected (0.04 sec)

mysql>
mysql> alter table tx PARTITION BY RANGE (int_column) subpartition by key (char_column)
    ->  (PARTITION p1 VALUES LESS THAN (5) ENGINE = myisam);
ERROR 2013 (HY000): Lost connection to MySQL server during query
[26 Oct 2007 22:36] MySQL Verification Team
Thank you for the bug report. Verified as described.

mysql> create table tx (int_column int, char_column char(5))
    -> PARTITION BY RANGE (int_column) subpartition by key (char_column)
    -> (PARTITION p1 VALUES LESS THAN (5) ENGINE = InnoDB);
Query OK, 0 rows affected (0.04 sec)

mysql> alter table tx PARTITION BY RANGE (int_column) subpartition by key (char_column)
    -> (PARTITION p1 VALUES LESS THAN (5) ENGINE = myisam);
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql>
[31 Oct 2007 13:06] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/36754

ChangeSet@1.2615, 2007-10-31 16:01:29+04:00, holyfoot@mysql.com +3 -0
  Bug #31893 Partitions: crash if subpartitions and engine change.
  
  The new default database engine for altered table was reassigned to
  the old one. That's wrong thing by itself, and (as the engine
  for a subpartition gets that new value) leads to DBUG_ASSERTION
  in mysql_unpack_partition()
[16 Nov 2007 9:32] Bugs System
Pushed into 5.1.23-rc
[16 Nov 2007 9:34] Bugs System
Pushed into 6.0.4-alpha
[16 Nov 2007 10:03] Jon Stephens
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release.

If necessary, you can access the source repository and build the latest available version, including the bug fix. More information about accessing the source trees is available at

    http://dev.mysql.com/doc/en/installing-source.html

Documented fix in 5.1.23 changelog.