Loading mysql-test/r/partition.result +10 −0 Original line number Diff line number Diff line Loading @@ -87,3 +87,13 @@ partition by list (b*a) partition x2 values in (3, 11, 5, 7) tablespace ts2, partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3); drop table t1; CREATE TABLE t1 ( a int not null) partition by key(a); LOCK TABLES t1 WRITE; insert into t1 values (1); insert into t1 values (2); insert into t1 values (3); insert into t1 values (4); UNLOCK TABLES; drop table t1; mysql-test/t/partition.test +18 −0 Original line number Diff line number Diff line Loading @@ -134,3 +134,21 @@ partition by list (b*a) partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3); drop table t1; # # Bug 13154: Insert crashes due to bad calculation of partition id # for PARTITION BY KEY and SUBPARTITION BY KEY # CREATE TABLE t1 ( a int not null) partition by key(a); LOCK TABLES t1 WRITE; insert into t1 values (1); insert into t1 values (2); insert into t1 values (3); insert into t1 values (4); UNLOCK TABLES; drop table t1; sql/sql_partition.cc +1 −1 Original line number Diff line number Diff line Loading @@ -2305,7 +2305,7 @@ static uint32 get_part_id_key(Field **field_array, uint no_parts) { DBUG_ENTER("get_part_id_key"); DBUG_RETURN(calculate_key_value(field_array) & no_parts); DBUG_RETURN(calculate_key_value(field_array) % no_parts); } Loading Loading
mysql-test/r/partition.result +10 −0 Original line number Diff line number Diff line Loading @@ -87,3 +87,13 @@ partition by list (b*a) partition x2 values in (3, 11, 5, 7) tablespace ts2, partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3); drop table t1; CREATE TABLE t1 ( a int not null) partition by key(a); LOCK TABLES t1 WRITE; insert into t1 values (1); insert into t1 values (2); insert into t1 values (3); insert into t1 values (4); UNLOCK TABLES; drop table t1;
mysql-test/t/partition.test +18 −0 Original line number Diff line number Diff line Loading @@ -134,3 +134,21 @@ partition by list (b*a) partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3); drop table t1; # # Bug 13154: Insert crashes due to bad calculation of partition id # for PARTITION BY KEY and SUBPARTITION BY KEY # CREATE TABLE t1 ( a int not null) partition by key(a); LOCK TABLES t1 WRITE; insert into t1 values (1); insert into t1 values (2); insert into t1 values (3); insert into t1 values (4); UNLOCK TABLES; drop table t1;
sql/sql_partition.cc +1 −1 Original line number Diff line number Diff line Loading @@ -2305,7 +2305,7 @@ static uint32 get_part_id_key(Field **field_array, uint no_parts) { DBUG_ENTER("get_part_id_key"); DBUG_RETURN(calculate_key_value(field_array) & no_parts); DBUG_RETURN(calculate_key_value(field_array) % no_parts); } Loading