Bug #13154:
Used AND when modulo should have been used to calculate partition id for PARTITION BY KEY and SUBPARTITION BY KEY mysql-test/r/partition.result: New test for Bug #13154 mysql-test/t/partition.test: New test for Bug #13154
This commit is contained in:
parent
fc5ee2203b
commit
dc4e76ca78
@ -87,3 +87,13 @@ partition by list (b*a)
|
|||||||
partition x2 values in (3, 11, 5, 7) tablespace ts2,
|
partition x2 values in (3, 11, 5, 7) tablespace ts2,
|
||||||
partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
|
partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
|
||||||
drop table t1;
|
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;
|
||||||
|
@ -134,3 +134,21 @@ partition by list (b*a)
|
|||||||
partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
|
partition x3 values in (16, 8, 5+19, 70-43) tablespace ts3);
|
||||||
|
|
||||||
drop table t1;
|
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;
|
||||||
|
|
||||||
|
@ -2298,7 +2298,7 @@ static uint32 get_part_id_key(Field **field_array,
|
|||||||
uint no_parts)
|
uint no_parts)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("get_part_id_key");
|
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…
x
Reference in New Issue
Block a user