Description:
This is not common but critical if it does..
When creating a partitioned table by range on one column (apparently the first column), with a multiple column primary key, if the partitions do not cover all possible values (i.e. using maxvalue for the last partition), and any query above that partition range and within the datatype range (i.e. 2147483647 for INT SIGNED) will restart the mysql server, mysql.sock will disappear in the process and take down a production environment waiting for all processes to finish.
How to repeat:
window #1
mysqld_safe --defaults-file=/etc/my-whatever.cnf &
window #2
CREATE TABLE `table_A` (`id` int(1) NOT NULL AUTO_INCREMENT, `a` tinyint(1) NOT NULL DEFAULT '0', `b` int(5) DEFAULT NULL, `c` int(5) DEFAULT NULL, PRIMARY KEY (`id`, `a`)) ENGINE=InnoDB partition by range (id)(PARTITION p0 VALUES LESS THAN (100));
case i
mysql> select * from table_A where id='99';
Empty set (0.00 sec)
case ii
mysql> select * from table_A where id='2147483648';
Empty set, 1 warning (0.00 sec)
case iii
mysql> select * from table_A where id='100';
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> select * from table_A where id='2147483647';
ERROR 2013 (HY000): Lost connection to MySQL server during query
window #2 result for case iii
120801 15:00:45 mysqld_safe Number of processes running now: 0
120801 15:00:45 mysqld_safe mysqld restarted
Suggested fix:
assign it the following error code,
MySQL error code 1526 (ER_NO_PARTITION_FOR_GIVEN_VALUE): Table has no partition for value %-.64s